tmpfs 是什么

        我们df 的时候会看到一行

1
2
3
4
5
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root 18102140 1429428 15753160 9% /
tmpfs 146844 0 146844 0% /dev/shm
/dev/sda1 495844 31636 438608 7% /boot

        它的大小为 146844,这个数值其实正好是内存大小的一半:

1
2
3
4
5
[root@localhost ~]# free
total used free shared buffers cached
Mem: 293692 203528 90164 0 15880 125184
-/+ buffers/cache: 62464 231228
Swap: 2064376 0 2064376

        这个tmpfs到底是什么呢? 其实它是一个临时文件系统,驻留于内存中,使用它可以提高文件访问速度,并能保证重启时会自动清除这些文件。只不过驻留在这里的文件是容易丢失的,因为内存数据是不会像硬盘中的数据那样可以永久存在。知道了tmpfs的这个特性后,我们就可以把一些对读写性能要求较高,但是数据又可以丢失的这样的数据就可以保存在/dev/shm中,你也可以认为这里就是内存。既然/dev/shm是内存,那么想当然,我们不能把全部内存都挂载到这个目录下,系统默认只分一半是有道理的。那么我们能不能更改这个tmpfs的大小? 当然可以!

1
2
3
4
5
6
[root@localhost ~]# mount -o remount,size=180M tmpfs /dev/shm
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 18G 1.4G 16G 9% /
tmpfs 180M 0 180M 0% /dev/shm
/dev/sda1 485M 31M 429M 7% /boot

        所以说,这个tmpfs是可以更改的,但这种办法知识临时的,重启后还会恢复内存大小的一半。那如何让他永久生效?、

1
2
[root@localhost ~]# vi /etc/fstab //编辑/etc/fstab, 把tmpfs这一行改为:
tmpfs /dev/shm tmpfs defaults,size=180M 0 0

        这样就可以啦。